#include <stdbool.h>
#include<stdio.h>
#include <math.h>
#include <stdlib.h>
#include "../HeadFiles/ChainsH/RecordChain.h"
#include<stdio.h>
#include<windows.h>//gotoxy
#include<conio.h>//getch
#include<string.h>//strcmp
#define ROW 14
#define COL 14

/*
 void gotoxy(int x,int y)//形参
{
    HANDLE hOut;
    COORD pos= {x,y};
    // 光标的起始位（第1列，第3行） 0是第1列 2是第3行
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOut, pos);
    //printf("定位光标位置搜索(%d,%d)\n",pos.X,pos.Y);
}
 */
/*void paintWindow()       //打印表窗口
{
    int startX=6;
    int startY=5;
    int width=20;
    int height=20;
    int i=0;
    //打印顶部
    //光标定位 找规律 ┗  ┛ ┏ ┓ ┃ ━
    //顶部 y不变 x 在变 (x-x+w)
    gotoxy(startX,startY);
    printf("┏");
    for(i=0;i<width-2;i++)  //控制循环次数width-2次
    {
        printf("━ ");
    }
    printf("┓");
    //左边 x不变 y在变 (y到y+height)
    for(i=1;i<=height-2;i++)
    {
        gotoxy(startX,startY+i);
        printf("┃");
    }

    //右边 x不变 =startx+width-1  y在变 y 到 y+height
    for(i=1;i<=height-2;i++)
    {
        gotoxy(startX+width*2-3,startY+i);
        printf("┃");
    }
    //底部 x在变化    y不变 （x到x+width） ━
    gotoxy(startX,startY+height-1);
    printf("┗");
    for(i=0;i<width-2;i++)
    {
        printf("━ ");
    }
    printf("┛");

    gotoxy(startX,startX+height);
}
 */
//传入链表头,遍历算出利润和利润率
void proFit(struct RecordNode *head) {
    double a=0,b=0,a1=0,b1=0,profit=0,rop=0,rate,ratemax=0,ratemin=100000;
    //a,b用于计算卖出的最大,最小利润率,a1,b1用于计算总利润(总盈亏)
    // 设置一个初始最小,最大利润率并初始化;
    struct RecordNode *p,*max,*min;
    if(head == NULL)
        printf("no record !");
    p=head;
    while(p!=NULL)
    {
        a1 = a1 + (p->soldPrice) * (p->unitCount);
        b1 = b1 + (p->purchasePrice)*(p->unitCount);
        if (p->isSoldOut == true)
        //如果是卖出,则进行利润率计算,比较
        {
            a = a + (p->soldPrice) * (p->unitCount);
            rate = (p->soldPrice - p->purchasePrice)/(p->purchasePrice);
            if(ratemax<=rate)
            {
                max=p;
                ratemax=rate;
            }
            if(rate<=ratemin)
            {
                min=p;
                ratemin=rate;
            }
            b=b+(p->purchasePrice)*(p->unitCount);
            //记录成本
        }
        else ;
        p=p->nextRecord;
    }
    system("cls");
    //paintWindow();
    profit=a1-b1;//净利润可为负,进的比卖的多
//    gotoxy(12,9);
    printf("profit:%.2f yuan\n",profit);
    rop=(profit/b1)*100;
    //利润率乘以100化为百分数形式
//    gotoxy(12,13);
    printf("profit rate:%.2f%% \n\n",rop);
//    gotoxy(12,17);
    printf("the maximum profit rate(%.2f%%) record:\n",ratemax*100);
    displayThisRecord(max);
//    gotoxy(12,21);
    printf("the minimum profit rate(%.2f%%) record:\n",ratemin*100);
    displayThisRecord(min);
//    gotoxy(12,25);
    system("pause");
    return;
}
